package com.pdf;

import com.itextpdf.text.*;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * @User xiangyl
 * @Data 2020/8/19
 */
public class PdfExport {

    public static void main(String[] args) throws IOException {
        String fileName="D:\\test\\test.pdf";
        //该对象代表了一个pdf实例。首先创建（new）该实例，然后打开（open）它，并添加（add）内容
        //最后关闭（close），即可生成一个pdf文件；一个Document相当于一个pdf文件
        Document document = new Document(PageSize.A4);
        try {
            File file = new File(fileName);
            if (file.isFile()) {
                if (file.exists()) {
                    file.delete();
                }
            }
            //传入要生成的pdf文件的地址，和文档对象；这个给document对象添加了一个监听器
            //而且会根据fileName生成对应路径下的pdf文件
            PdfWriter.getInstance(document,new FileOutputStream(fileName));
            document.open();
            //document.add(new Paragraph("hello world"));
            PdfPTable pdfPTable = new PdfPTable(2);
            document.add(pdfPTable);
            PdfPCell cell=null;

            Font font = new Font();
            font.setColor(BaseColor.RED);
            //单元格的布局首先会横着排列，就是单元格的个数最下要等于pdfptable的列数，不然无法将单元格内容写入pdf
            cell = new PdfPCell(new Phrase("one", font));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
            cell.setVerticalAlignment(Element.ALIGN_CENTER);//垂直居中
            //cell.setFixedHeight(15);
            pdfPTable.addCell(cell);


            Font font1 = new Font();
            font1.setColor(BaseColor.BLUE);
            cell=new PdfPCell(new Phrase("two",font1));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
            cell.setVerticalAlignment(Element.ALIGN_CENTER);//垂直居中
            //cell.setFixedHeight(15);
            pdfPTable.addCell(cell);
            document.add(pdfPTable);

            PdfPTable pdfPTable1 = new PdfPTable(3);
            Font font2 = new Font();
            font1.setColor(BaseColor.BLUE);
            cell=new PdfPCell(new Phrase("three",font1));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
            cell.setVerticalAlignment(Element.ALIGN_CENTER);//垂直居中
            //cell.setFixedHeight(5);
            pdfPTable1.addCell(cell);
            cell = new PdfPCell(new Phrase("four", font2));
            pdfPTable1.addCell(cell);
            cell = new PdfPCell(new Phrase("five", font2));
            pdfPTable1.addCell(cell);
            cell = new PdfPCell(new Phrase("six", font2));
            pdfPTable1.addCell(cell);
            document.add(pdfPTable1);

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            document.close();
        }
    }
}
